package com.qr.list;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListMethod {

    //  list集合有序重复
    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("乔峰");
        list.add("段誉");
        list.add("虚竹");
        list.add("乔峰");
        list.add("段誉");
        list.add("虚竹");

        //指定位置插入元素,索引为3的位置插入一个元素，加入后鸠摩智为3
        list.add(3,"鸠摩智");

        //在指定索引后面添加一个集合中的元素
        ArrayList list2 = new ArrayList<>();
        list2.add("段正淳");
        list2.add("段延庆");
        //鸠摩智为3，这个动作后就是段正淳为3，段延庆为4，鸠摩智为5了
        list.addAll(3,list2);
        System.out.println(list);

        //支持索引拿元素，索引从0开始
        Object o = list.get(0);
        System.out.println("索引为0的元素为"+o);

        //返回某个元素在集合中首次出现的位置，只会找第一次出现的位置
        int 鸠摩智 = list.indexOf("鸠摩智");
        System.out.println(鸠摩智);//返回索引为5

        //集合中最后一次出现乔峰的位置
        int 乔峰 = list.lastIndexOf("乔峰");
        System.out.println(乔峰);//返回6


        //设置新元素,这个是一个替换的动作，一定要保证元素时存在的
        Object 王语嫣 = list.set(6, "王语嫣");

        //左开右闭区间，也就是0,1,2索引位置对应的元素
        List list1 = list.subList(0, 3);
        System.out.println(list);

        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }

        //sublist中定义的元素
        for (Object o1 :list1) {
            System.out.println("sublist中定义的元素"+o1);
        }

        /**
         * list遍历for循环遍历
         */
        for (int i = 0; i < list1.size(); i++) {
            System.out.println("for循环遍历拿元素"+list1.get(i));
        }

    }

    /**
     * list集合特有的方法
     */
    public static void listUse(){



    }




}
